#region Using Directives
using System;
using System.Collections.Generic;
using System.Text;
using System.Security.Cryptography; 
#endregion

namespace Minimal.Web
{
    /// <summary>
    /// Creates ICryptoTransform objects.
    /// </summary>
    public interface ISymmetricAlgorithmFactory
    {
        /// <summary>
        /// Gets a SymmetricAlgorithm instance with key and IV based
        /// on the supplied string key.
        /// </summary>
        /// <param name="key">The key used to generate encryption key and IV.
        /// There are no restrictions in the length of the key, it may
        /// however not be null (Nothing in VB).</param>
        /// <returns>A SymmetricAlgorithm instance.</returns>
        /// <exception cref="ArgumentNullException">The supplied key was null.</exception>
        SymmetricAlgorithm GetAlgorithm(string key);
    }
}
